const express = require('express');
const db = require('./db');

const app = express();
app.use(express.urlencoded()); // 处理post请求content-type是urlencoded类型的数据
app.use(express.json()); // 处理post请求content-type是json类型的数据

app.get('/', async (req, res) => {
    try {
        const data = await db.get();
        res.send(data);
    } catch (error) {
        res.status(500).json({ error });
    }
});

app.post('/', async (req, res) => {
    let body = req.body;
    if (!body) {
        res.status(403).json({
            error: '缺少用户信息'
        });
    }
    const jsonObj = await db.getDb();
    body.id = jsonObj.users[jsonObj.users.length - 1].id + 1;
    jsonObj.users.push(body);
    try {
        let w = await db.setDb(jsonObj);
        if (!w) {
            res.status(200).send({
                msg: '添加成功'
            });
        }
    } catch (error) {
        res.status(500).json({
            error
        });
    }
});

// :id表示一个变量
app.put('/:id', async (req, res) => {
    try {
        let userInfo = await db.getDb();
        let userId = Number(req.params.id);
        let user = userInfo.users.find(item => item.id === userId);
        if (!user) {
            res.status(403).json({
                error: '用户不存在'
            });
        }
        const body = req.body;
        user.name = body.name ? body.name : user.name;
        user.age = body.age ? body.age : user.age;
        userInfo.users[userId - 1] = user;
        console.log('🚀 ~ app.put ~ userInfo:', userInfo);
        if (!(await db.setDb(userInfo))) {
            res.status(201).json({
                msg: '更新成功'
            });
        }
    } catch (error) {
        res.status(500).json({ error });
    }
});
app.listen('8888', () => {
    console.log('127.0.0.1:8888');
});
